package thread;

public class SyncDemo1 {
    public static void main(String[] args) {
        /*Shop shop = new Shop();
        Thread t1 = new Thread("王老师"){
            public void run(){
                shop.buy();
            }
        };
        Thread t2 = new Thread("范传奇"){
            public void run(){
                shop.buy();
            }
        };
        t1.start();
        t2.start();*/
        Shop shop1 = new Shop();
        Shop shop2=new Shop();
        Thread t1 = new Thread(shop1::buy);
        Thread t2 = new Thread(shop2::buy);
        t1.start();
        t2.start();
    }
}

class Shop{
    public void buy(){
        try {
            Thread t = Thread.currentThread();
            System.out.println(t.getName()+": 正在挑衣服");
            Thread.sleep(3000);
            /*
            同步监听对象通常使用：临界资源
            1. 锁对象，必须是同一个对象，才能同步
             */
            synchronized ("abc") {
                System.out.println(t.getName() + ": 正在试衣服");
                Thread.sleep(3000);
            }

            System.out.println(t.getName()+": 结账离开");
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

